<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promiseAPI-resolve/reject</title>
</head>
<body>
    <script>

        // 1.resolve方法
        let p1 = Promise.resolve('ok')
        // console.log(p1)
        let p2 = Promise.resolve(new Promise((resolve,reject)=>{
            resolve('asd')
        }))
        // console.log(p2)
        // 传参如果是非promise对象，返回结果为成功。
        // 传参如果是promise对象，返回的结果取决于promise对象返回的结果。



        // 2.reject方法，快速的返回一个失败的promise对象
        let p3 = Promise.reject('sd')
        // console.log(p3)
        let p4 = Promise.reject(new Promise((resolve,reject)=>{
            resolve('true')
        })) //即使参数里面返回的是一个成功的promise对象，返回的也是失败
        // console.log(p4)

        // 3.all方法
        
        let p5 = Promise.resolve('1aa')
        let p6 = Promise.resolve('2vvv')
        let p7 = Promise.resolve('3ok')
        const result1 = Promise.all([p5,p6,p7])
        // console.log(result1) 
        // 这里可以看到：all方法，返回一个由多个成功的结果组成的数组。
        // 如果有一个是失败，则返回错误的第一个。


        // race方法
        let p8= new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve('p8')
            },1000)
        })
        let p9 = Promise.resolve('p9')
        let p10 = Promise.resolve('p10')
        const result2 = Promise.race([p8,p9,p10])
        console.log(result2)
        // 多个promise比赛，最终结果为第一个返回结果的结果，即第一个返回正确，最终结果为正确，第一个返回失败，最终结果返回失败
    </script>
</body>
</html>